home *** CD-ROM | disk | FTP | other *** search
/ ASP Advantage 1993 / The Association of Shareware Professionals Advantage CD-ROM 1993.iso / files / utilties / quickext / quickext.doc < prev    next >
Text File  |  1992-07-01  |  5KB  |  130 lines

  1.  
  2.               _______
  3.          ____|__     |               (R)
  4.       --|       |    |-------------------
  5.         |   ____|__  |  Association of
  6.         |  |       |_|  Shareware
  7.         |__|   o   |    Professionals
  8.       -----|   |   |---------------------
  9.            |___|___|    MEMBER
  10.  
  11.  
  12.  
  13. This program replaces int 15h function 87h
  14. It runs on 80286 only!  No 8086, no 8088, and (in spite of upward
  15. compatibility) no 80386!
  16. It serves to make moves to and from extended memory more
  17. efficient, resulting in better performance if you do many such
  18. moves.
  19.  
  20. Whenever the 8086 addresses memory, it performs the following
  21. address-calculation:  10h x segment + offset.     Since both
  22. segment and offset have 16 bits, the address is limited to 20
  23. bits, or 1,048,576.  This is the addressing-capacity of the 8086.
  24. The 80286 has 24 addressing-bits, but in real mode, it performs
  25. the same address-calculation as the 8086, still limiting memory
  26. to 1,048,576, well, actually a little bit more because of carry
  27. into to 21st bit. 
  28. To address more memory, the 80286 must be switched to protected
  29. mode. That's fine, but it is a terrible job to get the 80286 back
  30. to real mode.
  31.  
  32. But there is another way.
  33.  
  34. In fact, address calculation of the 80286 in real mode is
  35. different.
  36. Whenever in real mode a segment register is loaded, the 80286
  37. multiplies its new value by 10h and stores the result in the
  38. 24-bit descriptor cache.  The segment register is thenceforth
  39. ignored, to address memory, the 80286 adds the offset to the
  40. value in the descriptor cache.
  41. In real mode, the contents of the descriptor cache is always 10h
  42. times the contents of the segment register.  Its upper four bits
  43. and its lower four bits are always zero.
  44. There is no way to load the segment register and the descriptor
  45. cache independently.
  46. No, there is!  There is the LOADALL instruction, which loads
  47. every register independent from any other register.  The exciting
  48. thing about this instruction is that it is possible to set the
  49. upper four bits of the descriptor cache while remaining in real
  50. mode.
  51.  
  52. This program is a TSR.  It takes very little memory.  It uses
  53. loadall to set a descriptor cache, and moves data to/from any
  54. place in memory.  Thus it replaces the protected mode and
  55. cumbersome return to real mode which is used by your ROM-BIOS.
  56.  
  57. This program is available as shareware.  You are free to use it.
  58. You are free to give it away to any friend, provided it is not
  59. modified in any way, the source is included, and no charge is
  60. payed, except for a small amount for the diskette.
  61.  
  62. Whether you are satisfied or not, I would appreciate if you drop
  63. me a line or phone me. 
  64.      Feico Nater
  65.      Beukweg 24
  66.      7556 DE Hengelo
  67.      the Netherlands
  68.      phone 31 74 438373
  69.  
  70. Dit programma vervangt int 15h functie 87h
  71. Het loopt uitsluitend op een 80286!  Niet op 8086, niet op 8088,
  72. en (ondanks de opwaartse compatibiliteit) niet op 80386!
  73. Het dient om efficienter gegevens te kunnen verplaatsen van en
  74. naar extended memory, waardoor de performance van de computer
  75. verbetert.
  76.  
  77. Steeds als de 8086 het geheugen adresseert, dan wordt de volgende
  78. adres-berekening uitgevoerd:  10h x segment + offset.  Segment
  79. en offset hebben elk 16 bits, en het adres is dus beperkt tot 20
  80. bits, of 1,048,576.  Dit is de adresseercapaciteit van de 8086.
  81. De 80286 heeft 24 adresbits, maar in real mode, doet hij dezelfde
  82. adres-berekening als de 8086, waardoor het geheugen nog steeds
  83. beperkt is tot 1,048,576, eigenlijk iets meer door de overdracht
  84. in het 21ste bit.
  85. Om meer geheugen te adresseren moet de 80286 in protected mode
  86. worden gezet. 
  87. Dat is geen probleem, maar terugschakelen naar real mode is
  88. bijzonder omslachtig.
  89.  
  90. Maar er is een andere manier.
  91.  
  92. Eigenlijk is de adresberekening door de 80286 in real mode iets
  93. anders.
  94. Als in real mode een segmentregister wordt geladen, dan
  95. vermenigvuldigt de 80286 de nieuwe waarde met 10h.  Het resultaat
  96. wordt opgeslagen in de descriptor cache, die 24 bits groot is. 
  97. Het segmentregister wordt verder genegeerd, om geheugen te
  98. adresseren telt de 80286 de offset op bij de waarde in de
  99. descriptor cache.
  100. In real mode bevat de descriptor cache dus altijd 10h keer zoveel
  101. als het segmentregister.  De hoogste vier bits en de laagste vier
  102. bits zijn altijd nul.
  103. Er is geen manier om het segmentregister en de descriptor cache
  104. onafhankelijk van elkaar te laden.
  105. Of toch! Het kan met de LOADALL instructie, die elk register
  106. onafhankelijk van elk ander register laadt.  Het opwindende van
  107. deze instructie is dat het mogelijk is de hoogste vier bits van
  108. de descriptor cache een waarde te geven zonder naar protected
  109. mode te gaan.
  110.  
  111. Dit programma is een TSR.  Het neemt niet veel geheugen in
  112. beslag.  Het gebruikt LOADALL om de descriptor cache te laden en
  113. verplaatst gegevens van en naar elke plaats in het geheugen. 
  114. Zodoende vervangt het de methode via protected mode en de
  115. omslachtige terugkeer naar real mode die in het ROM-BIOS wordt
  116. gebruikt.
  117.  
  118. Dit programma is beschikbaar als shareware.  U mag het vrijelijk
  119. gebruiken. U mag een copie aan vrienden geven, mits het niet op
  120. enigerlei wijze gewijzigd wordt, de brontekst erbij geleverd
  121. wordt en geen betaling wordt verlangd, behalve een klein bedrag
  122. voor het schijfje.
  123.  
  124. Tevreden of niet, ik zou het op prijs stellen als u me een
  125. briefje schrijft of me opbelt. 
  126.      Feico Nater
  127.      Beukweg 24
  128.      7556 DE Hengelo
  129.      tel 074 438373
  130.